#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
打包脚本 - 将应用程序打包为独立的exe文件
"""

import os
import sys
import subprocess
import shutil

def main():
    """主函数，执行打包流程"""
    print("开始打包视频静音段落剪辑工具...")
    
    # 创建构建目录
    if not os.path.exists('build'):
        os.mkdir('build')
    if not os.path.exists('dist'):
        os.mkdir('dist')
    
    # 定义资源文件
    resource_files = []
    
    # 定义打包命令
    cmd = [
        'pyinstaller',
        '--clean',  # 清理临时文件
        '--name=视频静音段落剪辑工具',  # 应用程序名称
        '--windowed',  # 创建窗口应用程序（不显示控制台）
        '--onedir',  # 创建单个目录（而不是单个文件）
        '--icon=icon.ico' if os.path.exists('icon.ico') else '',  # 设置图标（如果存在）
        '--add-data=README.md;.',  # 添加README文件
        '--add-data=version.md;.',  # 添加版本文件
    ]
    
    # 添加资源文件
    for resource in resource_files:
        if os.path.exists(resource):
            cmd.append(f'--add-data={resource};{os.path.dirname(resource)}')
    
    # 添加主程序文件
    cmd.append('main.py')
    
    # 过滤掉空选项
    cmd = [item for item in cmd if item]
    
    # 执行打包命令
    print("正在执行打包命令:", ' '.join(cmd))
    result = subprocess.run(cmd, check=True)
    
    if result.returncode == 0:
        print("打包成功！")
        print("可执行文件位于:", os.path.abspath("dist/视频静音段落剪辑工具"))
    else:
        print("打包失败!")
        return 1
        
    return 0

if __name__ == "__main__":
    sys.exit(main()) 